The present invention relates to an optical processing system capable of performing matrix calculations, such as matrix multiplication.
Image processing, spectrum analysis, signal analysis and other areas of data processing require the transformation of data via a linear operator which is represented in the form of a matrix. Mathematically, the operator is denoted by EQU y=M x (1)
where M is the matrix m(i,j), i=1,m . . . R and j=1. . . S (i.e. a matrix with R rows and S columns) and x is an R element row or column vector x(i),having the values i=1, . . . R. The value m(i,]) represents the element in the ith row and the jth column of the matrix. The value y is represented by the series [y(l) . . . y(S)]where ##EQU1## It can be seen that the generation of y(k) requires R multiplications and R additions, and this process must be repeated S times for all values of the vector y to be calculated. Thus the linear transform of data becomes computationally intense for relatively large values of R and S and real time applications are limited. The multiplication and addition process can, of course, be performed by a computer but the mathematical manipulations will then be carried out sequentially and may take an unnecessarily large length of time or require a costly, complex and relatively large computer system, which is not suitable where space or weight is limited.
Optical processing systems have been used in the past for performing mathematical manipulations involving matrices with large numbers of elements, since such systems can perform a large number of parallel additions and multiplications simultaneously.
Such systems typically involve the direction of one or more beams of light through an optical mask of variable transmittance. The intensity of the light beam or beams is adjusted according to a first set of values, and the transmittance of predetermined areas of the mask is controlled according to a second set of values. Thus if the light beams incident on each area or element of the mask are controlled in accordance with the vector x and the transmittances of the respective elements of the mask are controlled in accordance with the values of the matrix M, a solution for the equation (1) above can be obtained by measuring the amount of light passing through the mask. This is done by suitably arranged photodetectors.
In U.S. Pat. No. 3,592,547 of Noble, for example, analog data to be transformed is entered on a column of resolution elements by suitable control of the optical transmissivity of the elements, and a matrix transform function is entered on an array of resolution elements in a similar manner. Light projected through the column of elements is imaged on the array by means of a lens which images light from each element in the column on the corresponding row of elements in the matrix array. Light transmitted through each element of the array is proportional to the product of the data entered in that element with the data entered in the corresponding element of the column. The output from the array is detected by a suitable arrangement of photodetectors and can be converted into electrical signals representative of the results of a matrix multiplication.
In U.S. Pat. No. 4,286,328 of Bocker an optical system is used to perform the computation of the radar ambiguity function or similar mathematical computations. The system includes a programmable mask for storing a set of values, and a light source is positioned to illuminate the mask and have its intensity modulated as a function of the sample values. The image reflected from the array is directed onto a photosensor array to yield the ambiguity or other function.
In U.S. patent application Ser. No. 565,052 filed Dec. 23, 1983 and assigned to the same assignee as the present application, an optical matrix multiplier is described which has the capability of handling a linear multiplication operation involving a matrix having bipolar values. A light source produces a plurality of light beams w ith the intensity of each beam representative of a predetermined value of a known column vector. The beams illuminate a mask having individual elements forming a matrix having an extra row to generate an offset in the matrix values to ensure that the matrix has only unipolar values. The resultant output from the photodetectors can be adjusted to subtract the scalar constant generated by the additional row of the matrix.
Some of the known optical processing systems for performing complicated mathematical computations are relatively large or complex, require a large number of optical components, and are subject to errors unless perfectly aligned. In some cases, a photographic mask or film is used to simulate the matrix with the result that the device is not programmable.